public class InputVO {
	private String action = "publish";
	private String topic = "";
	private String message = "Message from MQTTv3 Java client";
	private int qos = 2;
	private String broker = "localhost";
	private int port = 1883;
	private String clientId = "";
	private boolean cleanSession = true;
	private String keyStore = "";
	private String keyStorePassword = "";
	private String trustStore = "";
	private boolean ssl = false;
	private String protocol = "";
	private String userName;
	private String password;

	

	/**
	 * (default is publish)
	 * 
	 * @return publish|subscribe
	 */
	public String getAction() {
		return action;
	}

	/**
	 * @param action
	 *            publish|subscribe
	 */
	public void setAction(String action) {
		this.action = action;
	}

	/**
	 * default( publish: "Sample/Java/v3", subscribe: "Sample/#")
	 * @return
	 */
	public String getTopic() {
		return topic;
	}

	/**
	 * @param topic
	 */
	public void setTopic(String topic) {
		this.topic = topic;
	}

	/**
	 * default ("Message from MQTTv3 Java client")
	 * @return message text
	 */
	public String getMessage() {
		return message;
	}

	/**
	 * @param message
	 *            message text
	 */
	public void setMessage(String message) {
		this.message = message;
	}

	/**
	 * Use this QoS instead of the default (2)
	 * 
	 * @return 0|1|2
	 */
	public int getQos() {
		return qos;
	}

	/**
	 * @param qos
	 *            0|1|2
	 */
	public void setQos(int qos) {
		this.qos = qos;
	}

	/**
	 * @return hostname or IP address
	 */
	public String getBroker() {
		return broker;
	}

	/**
	 * hostname or IP address
	 * 
	 * @param broker
	 */
	public void setBroker(String broker) {
		this.broker = broker;
	}

	/**
	 * Use this port instead of the default (1883)
	 * @return broker port
	 */
	public int getPort() {
		return port;
	}

	/**
	 * 
	 * @param port
	 *            broker port
	 */
	public void setPort(int port) {
		this.port = port;
	}

	/**
	 * @return clientID
	 */
	public String getClientId() {
		return clientId;
	}

	/**
	 * @param clientId
	 *            clientID
	 */
	public void setClientId(String clientId) {
		this.clientId = clientId;
	}

	public boolean isCleanSession() {
		return cleanSession;
	}

	public void setCleanSession(boolean cleanSession) {
		this.cleanSession = cleanSession;
	}
	
	/**
	 * default is tcp://
	 * @return
	 */
	public String getProtocol() {
		if (ssl) {
			protocol = "ssl://";
		} else {
			protocol = "tcp://";
		}
		return protocol;
	}
	
	public String getKeyStore() {
		return keyStore;
	}

	public void setKeyStore(String keyStore) {
		this.keyStore = keyStore;
	}

	public String getKeyStorePassword() {
		return keyStorePassword;
	}

	public void setKeyStorePassword(String keyStorePassword) {
		this.keyStorePassword = keyStorePassword;
	}

	public String getTrustStore() {
		return trustStore;
	}

	public void setTrustStore(String trustStore) {
		this.trustStore = trustStore;
	}

	/**
	 * SSL enabled; true - (default is false) 
	 * @return 
	 */
	public boolean getSsl() {
		return ssl;
	}

	/**
	 * @param ssl true | false
	 */
	public void setSsl(boolean ssl) {
		this.ssl = ssl;
	}

	public String getUserName() {
		return userName;
	}

	public void setUserName(String userName) {
		this.userName = userName;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	

}
